写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在
import sys for line in sys.stdin: if line != '\n': a = line.split() result = 0 string = a[0][::-1] for i in range(len(string)-2): if string[i].isdigit(): result = result + int(string[i])*16**(i) else: result = result + (ord(string[i])-55)*16**(i) print(result, end='\n')
import sys dict_16 = {"0":"0000","1":"0001","2":"0010","3":"0011","4":"0100","5":"0101","6":"0110","7":"0111","8":"1000","9":"1001","A":"1010","B":"1011","C":"1100","D":"1101","E":"1110","F":"1111"} for line in sys.stdin: a = line.split() string_result = a[0] string_result = string_result[2:] #将16进制字符串缝合 string_2 = "" for i in string_result: string_2 = string_2+dict_16[i] #计算10进制结果 finally_result = 0 square = len(string_2)-1 for i in string_2: if(i == "1"): finally_result = finally_result + 2**square square = square - 1 print(finally_result)不调包的简单写法
str1 = str(input()) str2 = str1[2:] list1 = list(str2) dict1 = {'A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'} list2 = [dict1[i] if i in dict1 else i for i in list1] list3 = [] Sum = 0 for i in list2: list3.append(int(i)) for i in range(len(list3)): Sum += list3[-(i+1)]*pow(16,i) print(Sum)迂回解法🤣